﻿#!/bin/bash
#author:Castle Moriarty
# date:2025-10-25



## 日志滚动归档
## 脚本需求
## 写一个日志归档脚本，类似于系统的logrotate程序做日志归档
## 加入服务的输出日志是1.log,要求每天归档一个，1.log第二天就变成1.log.1,第三天就变成1.log.2,第四天 1.log.3 一直到1.log.5


## 假设日志路径为/data
cd /data

## 首先删除掉最老的日志1.log.5，如果存在的话
if [ -f 1.log.5 ]
then
  rm -f 1.log.5
fi

## 使用for + seq 做从5到2倒序遍历循环
## 这里的用法，等同于 for i in 5 4 3 2 1
for i in `seq 5 -1 2`
do
  ## 如果日志存在，则后缀加1
  if [ -f 1.log.$[$i-1] ]
  then
    mv 1.log.$[$i-1] 1.log.$i
  fi
done

## 还差最后一个也要改名字
mv 1.log 1.log.1
## 还要新建一个1.log
touch 1.log





<<'COMMENT'
关键知识点总结：
1) for + seq 用法
2) 倒序是本脚本关键，因为要从最后面的文件开始处理，就好比一个萝卜一个坑，只有最前面的腾出地方，后面的才能到之前的坑里
COMMENT